import com.sun.syndication.io.SyndFeedInput
import com.sun.syndication.io.XmlReader

class HtmlParserTests extends GroovyTestCase {
    
    void testParseGotoknow() {
        def parser = new org.cyberneko.html.parsers.SAXParser()
        parser.setFeature("http://xml.org/sax/features/namespaces", false)
        parser.setProperty("http://cyberneko.org/html/properties/names/elems", "lower")
        def html = new XmlParser(parser).parseText(gotoknow_sample)
        assertEquals("Title", "MemeCoder", html.head.title.text()[0..8])

        def entries = html.depthFirst().grep { it.'@class' == 'item' }
        assertEquals("Number of entries", 10, entries.size())

        def title = entries[0].depthFirst().grep { it.'@class' == 'title' }
        def content = entries[0].depthFirst().grep { it.'@class' == 'content' }
        
        assertEquals("ชีวิตที่สับสนของผู้บริหารระบบเครือข่าย", title[0].a.text()) 

        assertEquals('http://gotoknow.org/blog/memecoder/171586', content.a[-1].'@href'[0])
    }

    void testParseGotoknowFeed() {
        def rss_stream = new java.io.ByteArrayInputStream(gotoknow_rss_sample.getBytes())
        def input = new SyndFeedInput()
        def feeds = input.build(new XmlReader(rss_stream));

        assertEquals(15, feeds.entries.size())   
        assertEquals('http://gotoknow.org/blog/memecoder/171586', feeds.entries[0].link)
    }

    def gotoknow_rss_sample = '''<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>MemeCoder</title>
    <link>http://gotoknow.org/blog/memecoder</link>
    <pubDate>Wed, 19 Mar 2008 03:48:10 GMT</pubDate>
    <description>Recent Posts</description>
    <item>
      <title>ชีวิตที่สับสนของผู้บริหารระบบเครือข่าย</title>
      <link>http://gotoknow.org/blog/memecoder/171586</link>
      <description> ผู้บริหารระบบเครือข่าย (System Administrator) เป็นอาชีพที่มีชีวิตผิดผู้คนมากเลยครับ เพราะเราต้องจัดการปรับปรุงดูแลเครื่องแม่ข่าย แล้วการดูแลเครื่องแม่ข่ายนั้นควรทำเวลาที่มีผู้ใช้น้อยที่สุด และเวลาที่มีผู้ใช้น้อยที่สุดคือเวลากลางคืนดึกๆ มากๆ 

 แต่ถ้าอยากเป็นผู้บริหารระบบเครือข่ายที่มีสุขภาพดีก็ไม่ควรนอนดึก เพราะนอนดึกไม่ดีต่อสุขภาพเป็นอย่างยิ่ง 

 แล้วถ้าผู้บริหารระบบเครือข่ายที่อยากมีสุขภาพดีจะจัดการระบบเครือข่ายอย่างไรดีครับ? 

 ก็ตัดสินใจทำมันกลางวันแสกๆ นั่นล่ะ 

 หักดิบครับ อย่างที่ผมทำเมื่อกี้นั่นไง ส่งผลให้ GotoKnow นิ่งสนิท Proxy Error ไปพักใหญ่ 

 เป็นสิ่งที่ไม่ควรทำเป็นอย่างยิ่ง ...</description>
      <pubDate>Wed, 19 Mar 2008 03:48:10 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/171586</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>system administrator</category>
      <category>การจัดการเวลา</category>
      <category>ผู้บริหารระบบเครือข่าย</category>
    </item>
    <item>
      <title>เขียวเสียที หลังจากมีอคติมาบังตา</title>
      <link>http://gotoknow.org/blog/memecoder/166093</link>
      <description> สัปดาห์ที่แล้ว เราได้มีโอกาสขยับ KnowledgeVolution มาอยู่บน Ruby on Rails 2.0.2 แล้วได้ทดลอง deploy กับ Leaners.in.th เป็นไซต์แรก (เพราะอยู่คนละเครื่องแม่ข่ายกับไซต์อื่นๆ) ปรากฎว่า bugs กระจาย ไล่หาอย่างไรก็ไม่เจอเสียที โดยส่วนใหญ่ error message จะเกี่ยวข้องกับกระบวนการ caching ครับ    ครั้งนี้เป็นการไล่ bugs ที่หมดเรี่ยวหมดแรงจริงๆ ครับ เพราะไม่เจอ จุดที่เคยเจอก็กลับไม่เจอ แปลกใจอย่างมาก    ก่อนหน้านี้ผมเคยเจอว่า gettext 1.10.0 มีปัญหากับ memcache-client เพราะ gettext ไป rewrite บาง functions ของ memcache-client ทำให้ทำงานได้เอ๋อ ผมก็เลยพยายามไล่ไปในจุดนั้น โดยคิดว่าต้องเป็นเรื่องเดิมอีกแ...</description>
      <pubDate>Tue, 19 Feb 2008 01:55:48 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/166093</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>mysql</category>
      <category>plugin</category>
      <category>ruby on rails</category>
      <category>subquery</category>
      <category>willpaginate</category>
      <category>ปรัชญาชีวิต</category>
    </item>
    <item>
      <title>Xrandr กับ MacBook</title>
      <link>http://gotoknow.org/blog/memecoder/164347</link>
      <description> ตอนนี้ผมใช้ MacBook ที่ติดตั้ง Ubuntu มาได้หนึ่งวันเต็มๆ MacBook นี่ทำงานได้ดีมากกับ Ubuntu เพราะ hardware ที่ Apple ทำมานั้นดี ภาพที่ปรากฎบนหน้าจอเลยดูสดสวยงาม ทำให้รู้ว่า GNOME นี่ไม่ได้แพ้ Mac OS X เลย ถ้าดูกันในเครื่องที่ศักยภาพในการแสดงผลพอๆ กัน    แต่ปัญหาที่ผมใช้เวลาหาทางแก้อยู่พักใหญ่คือการแสดงผลออกจอที่สองครับ กว่าจะหาเจอก็ค้นอยู่พอประมาณทีเดียว    ปกติในเครื่อง BenQ ซึ่งใช้ video chip ของ Intel เหมือนกัน ผมก็ใช้คำสั่ง xrandr ปกติ แต่พอมาบน MacBook มันแสดงผลไม่ได้นะสิ เหมือนจะเป็น bug ของ xrandr ด้วยซ้ำครับ    แต่ไปเจอ solution ที่ได้ผลใน comment ใน  บันทึกนี้  ครับ    วิธีการคือก...</description>
      <pubDate>Sat, 09 Feb 2008 14:43:42 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/164347</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>ubuntu</category>
      <category>macbook</category>
      <category>vga</category>
      <category>xorg</category>
      <category>xrandr</category>
    </item>
    <item>
      <title>ลาที Mac OS X</title>
      <link>http://gotoknow.org/blog/memecoder/164159</link>
      <description> ผมเปลี่ยนมาใช้ Ubuntu เป็นหลักในการทำงานได้เกือบสัปดาห์แล้วครับ ปล่อยให้ MacBook เป็นพระรอง เป็นการประชดพี่ Steve ที่ไม่ได้เห็นผู้คนในโลกที่สาม ออก MacBook Air มาให้เฉพาะผู้มีเงินในประเทศโลกที่หนึ่งใช้ ผิดหวังผมอย่างยิ่ง    ในงาน MacWorld ที่ผ่านมา ผมคาดหวังว่า Apple ในฐานะผู้นำเครื่องคอมพิวเตอร์ในตลาดการศึกษา จะออกเครื่องที่สร้างปรากฎการณ์ด้านการศึกษาใหม่ชนิดที่ OLPC ต้องอายม้วนเสื่อ ClassmatePC ต้องกลับไปทำการบ้านใหม่ และ EeePC เลิกผลิตไปเลย    แต่ปรากฎว่าไม่เป็นอย่างนั้น พี่ Steve ลืมไปแล้วว่า Apple นั้นเติบโตมาจากตลาดไหน ออก MacBook Air ที่แพงแม้กระทั่งเด็กอเมริกันธรรมดายังไม่มีปัญญาซื...</description>
      <pubDate>Fri, 08 Feb 2008 08:19:36 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/164159</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>apple</category>
      <category>bill gates</category>
      <category>macbook air</category>
      <category>microsoft</category>
      <category>steve jobs</category>
      <category>ubuntu</category>
      <category>creative capitalism</category>
    </item>
    <item>
      <title>Ruby on Rails หรือ Django</title>
      <link>http://gotoknow.org/blog/memecoder/138414</link>
      <description> วันนี้เราพึ่งได้เปิดตัว  LightLex  ซึ่งเป็น dictionary ภาษาไทยและภาษาอังกฤษ โดยนำคลังศัพท์มาจาก  Lexitron  ครับ    สาเหตุที่เราทำ LightLex เนื่องจากเราได้คุยกับ NECTEC ไว้ตั้งแต่เดือนพฤศจิกายนปีที่แล้ว ว่าเราจะนำความถนัดด้าน Human-Computer Interaction มาเสริมในงานวิจัยต่างๆ ของ NECTEC เพื่อให้มีประโยชน์ต่อสังคมในวงกว้างขึ้นครับ    LightLex ไม่ใช่แค่ dictionary นะครับ เราวางแผนทำสิ่งสนุกๆ ใน LightLex อีกเยอะครับ และจะได้ทำตามโอกาสอำนวยครับ ลำดับต่อไปที่เราจะทำคือ vocabulary visualization ซึ่งจะเป็นอย่างไรนั้น ขออุบไว้ก่อนครับ ที่จริงแล้วเรื่อง learning, cognition, visualization etc. ที่เกี่...</description>
      <pubDate>Sun, 14 Oct 2007 07:53:38 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/138414</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>ruby</category>
      <category>ruby on rails</category>
      <category>rails</category>
      <category>python</category>
      <category>django</category>
    </item>
    <item>
      <title>Maryland Public Television (MPT) สถานีโทรทัศน์ที่ Owned and Operated by Viewers Like You</title>
      <link>http://gotoknow.org/blog/memecoder/136222</link>
      <description> ในบันทึกนี้ผมอยากจะขอเล่าในสิ่งที่ผมประทับใจในช่วงที่กำลังศึกษาอยู่ที่อเมริกาหนึ่งเรื่องครับ    ชีวิตผมในช่วงที่อยู่อเมริกามีทั้งเรื่องที่น่าประทับใจและเรื่องที่ไม่อยากจำ ปะปนกันไป เรื่องทั้งสองแบบที่จริงแล้วควรนำมาเล่า เพราะเป็นทั้งบทเรียนและเป็นอุทาหรณ์สอนใจครับ    แต่เรื่องที่ผมจะเล่าในบันทึกนี้ เป็นเรื่องด้านบวก เป็นเรื่องที่ผมประทับใจมาก และวาดฝันว่าอยากเห็นสิ่งเหล่านี้ในประเทศไทยของเราครับ    ในช่วงแรกที่ผมอยู่ที่ (ชาน) เมือง Baltimore (Baltimore County) รัฐ Maryland นั้น ผมยังไม่ได้ต่อเคเบิลทีวีเพราะมันแพง ดังนั้นสถานีโทรทัศน์ที่ผมอาศัยเปิดอยู่ตลดเวลาก็คือสถานีโทรทัศน์ท้องถิ่นที่ออก...</description>
      <pubDate>Mon, 08 Oct 2007 07:39:57 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/136222</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>สื่อมวลชน</category>
      <category>mpt</category>
      <category>pbs</category>
      <category>อเมริกา</category>
    </item>
    <item>
      <title>FreeBSD ประกาศให้ผู้ใช้ติดตั้ง patch เพื่อแก้ปัญหาความปลอดภัยของ OpenSSL</title>
      <link>http://gotoknow.org/blog/memecoder/134777</link>
      <description> วันนี้ FreeBSD Security Advisories มีประกาศให้ผู้ใช้ติดตั้ง patch เพื่อแก้ปัญหาความปลอดภัยของ OpenSSL ดัง  รายละเอียดนี้  ครับ    ผมชอบ FreeBSD ก็ตรงเรื่องระบบการจัดการในการพัฒนาและการดูแลของชุมชนในการใช้งานเช่นนี้ละครับ  ผู้สนใจสามารถติดตามเรื่องความปลอดภัยของ FreeBSD &nbsp;ได้ที่&nbsp; FreeBSD-Security &nbsp;ครับ     FreeBSD  ยังเป็นหนึ่งในใจผม เพื่อนเก่าเพื่อนแก่ใช้งานกันมานาน แม้ว่าช่วงสัปดาห์ที่ผ่านมาจะอยู่ในช่วงประทับใจกับ  Gentoo  อยู่บ้างนิดหน่อยครับ    เครื่องแม่ข่ายที่ใช้ FreeBSD ไม่เคยก่อปัญหาอะไรให้แก่ผมเลยครับ แต่ผมก็ยังอุตส่าห์พยายามไปหา Linux distribution มาใช้อยู่เรื่อยๆ ให...</description>
      <pubDate>Thu, 04 Oct 2007 04:19:39 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/134777</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>freebsd</category>
      <category>security</category>
      <category>openssl</category>
    </item>
    <item>
      <title>ทับทิม (ruby) ไม่งาม ไม่เชื่อแล้วพระเจ้า (god) ให้หมาบุลด๊อก (monit) เลี้ยงหมาบ้าน (mongrel) ดีกว่า</title>
      <link>http://gotoknow.org/blog/memecoder/127971</link>
      <description> ในสัปดาห์ที่แล้วผมฝากฝูงหมาบ้าน ( mongrel ) ให้พระเจ้า ( god ) ดูแล ดังที่เขียนไว้ใน  บันทึก  นี้ครับ    ปรากฎว่าพระเจ้ามืออ่อนมาก!! อาจจะเป็นด้วยวัยวุฒิที่น้อย (version 0.4.3) หรือการที่พระเจ้าติดอยู่ในทับทิม ( ruby ) ก็ไม่แน่ใจ เมื่อหมาบ้าน (mongrel) ผมตายเนื่องจากสาเหตุต่างๆ นานา พระเจ้าไม่สามารถปลุกหมาบ้านผมให้ฟื้นขึ้นมาได้    ไม่สมคำคุยของพระเจ้า (god) ที่ว่า &quot;like monit, only awesome&quot;    awful ซะมากกว่าละสิ    ผมเลยเปลี่ยนมาใช้  monit  เสียเลย    ปรากฎว่าเจ้าหมา bulldog ที่ชื่อ monit นี้เลี้ยงดูฝูงหมาบ้าน (mongrel) ของผมได้ดีทีเดียว ถ้าหมาบ้านตายปั๊บ monit ปลุกขึ้นมาในเวลาอ...</description>
      <pubDate>Fri, 14 Sep 2007 02:56:43 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/127971</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>ruby</category>
      <category>mongrel</category>
      <category>god</category>
      <category>monit</category>
      <category>ruby on rails</category>
      <category>system monitoring</category>
      <category>server</category>
    </item>
    <item>
      <title>คิดจะเลี้ยง "นักเลง" ต้อง "ใจนักเลง"</title>
      <link>http://gotoknow.org/blog/memecoder/127477</link>
      <description> เท่าที่ผมสังเกต ผมคิดว่าวิธีการบริหารจัดการแบบ &quot;ไทยๆ&quot; แบ่งได้เป็นสองแบบคือ แบบ &quot;ขุนนาง&quot; กับแบบ &quot;นักเลง&quot;    สองแบบนี้มีมาตั้งแต่โบราณครับ เป็นส่วนหนึ่งของวัฒนธรรมที่ฝังรากในสังคมไทยอย่างยาวนานและยังถูกใช้อยู่ในปัจจุบันอย่างเหนียวแน่นไม่เปลี่ยนแปลง    การบริหารจัดการแบบ &quot;ขุนนาง&quot; คือการบริหารที่อยู่บนพื้นฐานของ &quot;อำนาจ&quot; ที่เป็นของ &quot;ผู้มีอำนาจ&quot; ผู้ซึ่งอำนาจนั้นได้รับมาจากผู้มีอำนาจเหนือกว่า    ในระบบนี้จะเต็มไปด้วยการเอาออกเอาใจ ยกยอปอปั้น และการทำงานจะมุ่งอยู่ที่การทำเพื่อให้ผู้มีอำนาจเห็นผล ไม่ได้มองเนื้องานเป็นหลัก เพราะอำนาจของผู้ม...</description>
      <pubDate>Wed, 12 Sep 2007 15:22:52 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/127477</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>นักเลง</category>
      <category>ขุนนาง</category>
      <category>การจัดการความรู้</category>
      <category>open source</category>
      <category>open contents</category>
    </item>
    <item>
      <title>พระเจ้าช่วย!</title>
      <link>http://gotoknow.org/blog/memecoder/125103</link>
      <description> ช่วงหลายวันนี้ผมใช้ &quot;สิ่งศักดิ์สิทธิ์&quot; ในการดูแลเครื่องแม่ข่ายครับ ปรากฎว่าได้ผลดีมาก แต่เรื่องนี้เล่ายาวครับ    ที่จริงแล้ว Ruby on Rails นี่เป็น framework ที่ไม่ได้สุดยอดมากมายอะไรนักครับ จากประสบการณ์ในการใช้งานมาทั้งหมดในหนึ่งปีนี้ ผมว่า framework ทำเองก่อนหน้านี้ที่ทำด้วย Python เผลอๆ จะทรหดอดทนกว่าด้วยซ้ำ    สาหตุที่ผมบอกว่าทนกว่าเพราะ framework แบบ &quot;บ้านๆ&quot; นั้นทำงานผ่าน mod_python ซึ่งมี Apache ควบคุมไว้อีกทีหนึ่ง ดังนั้นถ้ามีปัญหา crash ขึ้นมา Apache ยุคใหม่สดใสก็จะ spawn ขึ้นมาใหม่ให้    แต่ Ruby on Rails ไม่เป็นเช่นนั้น เพราะตอนนี้ web server ที่ใช้ทำงาน Rails...</description>
      <pubDate>Tue, 04 Sep 2007 16:49:21 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/125103</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>god</category>
      <category>ruby</category>
      <category>rails</category>
      <category>mongrel</category>
      <category>process monitoring</category>
    </item>
    <item>
      <title>ลำใยที่อร่อยที่สุดในโลก</title>
      <link>http://gotoknow.org/blog/memecoder/123354</link>
      <description> ผมตั้งใจว่าจะรอให้เครื่องแม่ข่ายเข้าที่แล้วจะเขียนบันทึกนี้ครับ แต่จนแล้วจนรอเครื่องแม่ข่ายก็ไม่เข้าที่เสียที แถมช่วงหลังๆ นี้มีแววว่ายิ่ง optimize ก็ยิ่งไปกันใหญ่ (แม้ตัวเลขสถิติในทางเทคนิคดีขึ้น แต่ตัวเลขผู้ใช้กลับลดลงอย่างมาก แสดงว่ามีปัญหาในการใช้งานเกิดขึ้นที่เราต้องค้นหากันต่อไปครับ)    ผมเป็นคนที่เขียนบันทึกยากที่สุดใน GotoKnow ครับ เพราะพอตั้งท่าจะเขียนก็จะไปสังเกตเห็นประเด็นอะไรบางอย่างที่ต้องไปแก้ไขเลยไม่ค่อยได้เขียนครับ    เหมือนช่างซ่อมรถที่เวลาไปขับรถที่ตัวเองซ่อม ก็จะคอยสังเกตไปเรื่อย... เอ๊ะ... มีเสียงอะไรแปลกๆ เดี๋ยวเปิดดูเครื่องหน่อย เอ... สายไฟก็ไม่หลวม อืมม... เบรคไม่ค่อ...</description>
      <pubDate>Thu, 30 Aug 2007 03:54:41 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/123354</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>macbook</category>
      <category>เครื่องแม่ข่าย</category>
      <category>กำลังใจ</category>
      <category>ลำใย</category>
      <category>km เชียงใหม่</category>
    </item>
    <item>
      <title>MacBook กลับมาแล้ว</title>
      <link>http://gotoknow.org/blog/memecoder/120867</link>
      <description> ตกลงว่า MacBook ผมนั้น hard disk controller ไม่เสียครับ เพียงแต่ว่าด้วยความสามารถในการ design อันสูงส่งของบริษัท Apple ผู้เป็นผู้นำที่ยืนยงด้าน industrial design นั้น ท่านออกแบบวิธีการใส่ hard disk ไว้พิสดารกว่าใครเพื่อน ถ้าถอดๆ ดึงๆ ไม่ดีด้วยกำลังอย่างที่ผมทำ ยางก็จะหลุดออกมา และเมื่อติดยางเข้าไปใหม่ก็อาจทำให้ขั้วสัมผัส (ซึ่งอยู่ลึกเข้าไป เหล่ตามองไม่เห็น) ไม่เข้าที่ได้    งานนี้เสียเงินไป 3,690 บาท เป็นค่าซ่อมพร้อมค่า hard disk ตัวใหม่ ซึ่งเป็นค่าใช้จ่ายน้อยกว่าที่คิดไว้เยอะมากทีเดียวครับ    เรื่องนี้ต้องยกคุณความดีให้แก่บริษัท Computer &amp; Video Lab ซึ่งเป็นผู้จำหน่ายคอมพิวเตอร์ของบริ...</description>
      <pubDate>Mon, 20 Aug 2007 16:00:29 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/120867</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>macbook</category>
      <category>คอมพิวเตอร์</category>
    </item>
    <item>
      <title>MacBook ไม่อยู่แล้ว</title>
      <link>http://gotoknow.org/blog/memecoder/119822</link>
      <description> ตกลงว่า MacBook ผมท่าทางจะมีปัญหาที่ส่วนแผงวงจรควบคุม hard disk ครับ  จำเริญจริงๆ พ่อคุณ Steve Jobs ผู้เจริญ  เพราะหมายถึงโอกาสในการต้องเปลี่ยน mainboard ทั้งแผงก็คืบคลานเข้ามา และหมายถึงเงินหมื่นกว่าๆ (ๆๆๆๆ) ก็กำลังจะคืบคลานออกไปจากกระเป๋าผม  ที่จริงแล้วปลายปีนี้ผมกะว่าผมจะซื้อ MacBook Pro มาใช้ให้ชื่นอารมณ์  ตอนนี้เปลี่ยนใจแล้วครับ  แพงก็แพง แถมพังต่างหาก ไม่ไหว ไม่ไหว  คราวนี้ต้องมานั่งวางแผนกันใหม่แล้วครับ ตกลงจะเอายังไงดีกับชีวิต  คือเรื่อง notebook ในการทำงานของผมนี่เป็นเรื่องคอขาดบาดตายมากเลยนะครับ เป็นเรื่องสำคัญมากของชีวิตทีเดียว  ถ้าผมเป็นซามูไร notebook เปรียบเหมือนดาบของซามูไร ...</description>
      <pubDate>Wed, 15 Aug 2007 11:28:54 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/119822</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>notebook</category>
      <category>macbook</category>
      <category>คอมพิวเตอร์</category>
    </item>
    <item>
      <title>สัจธรรม notebook ปีละตัว</title>
      <link>http://gotoknow.org/blog/memecoder/119658</link>
      <description> เฮ้อ... เมื่อตอนหัวค่ำอาบน้ำเสร็จผมก็นั่งดูทีวี แล้วก็ไปปลุก MacBook จาก sleep mode แล้วผมตั้งท่าจะทำงาน  เจ้า MacBook ก็ตื่นขึ้นมาได้เหมือนปกติ แต่งัวเงียเหลือเกิน เพราะอืดมาก จนไม่ respond ในที่สุด แล้วก็มีเสียง hard disk ดัง แก๊ก แก๊ก แก๊ก เป็นจังหวะ  ประสบการณ์ที่โชกเลือดบอกว่าเสียงอย่างนี้ hard disk พังแหง แต่ใจยังไม่ยอมเชื่อ ... เฮ้ย.. มันยังไม่พังหรอก  กดปุ่มปิด แล้ว start ขึ้นมาใหม่ คราวนี้ไม่ขึ้น กลายเป็นหา hard disk ไม่เจอ  เอาเข้าแล้วไง  แกะเครื่องเปลี่ยน hard disk อีกตัว  ยังหา hard disk ไม่เจอ เอาละวา... ไม่ใช่ปัญหาอยู่ที่ hard disk แล้ว เพราะ hard disk ตัวที่เอามาเปลี่ยนใช้ได...</description>
      <pubDate>Tue, 14 Aug 2007 17:56:24 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/119658</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>สัจธรรม</category>
      <category>คอมพิวเตอร์</category>
      <category>notebook</category>
      <category>macbook</category>
    </item>
    <item>
      <title>ผมไม่เป็นคน JTHAI</title>
      <link>http://gotoknow.org/blog/memecoder/112718</link>
      <description> อย่างที่ทราบกันว่าตอนนี้เครื่องแม่ข่ายเรา overload มาก ดังนั้นในตอนนี้ผมเลยใช้เวลาในการพยายาม optimize ระบบให้รองรับผู้ใช้ได้มากขึ้นครับ    ตอนนี้ผมค้นหาข้อมูลอยู่หลายต่อหลายอย่างทีเดียวเกี่ยวกับการ optimization สำหรับ Ruby on Rails ครับ ได้ผลอย่างไรแล้วผมจะมาเขียนบันทึกบอกเล่ากันครับ    ระหว่างค้นหาอยู่ก็เจอคำย่อที่เล่นเอาผมหัวเราะก๊าก แล้วบอกตัวเองว่าข้าจะไม่เป็นคน JTHAI เด็ดขาด    คน JTHAI นี่ไม่ดีครับ สิ้นเปลือง และไม่ฉลาด    อยากรู้แล้วละสิ    JTHAI ย่อมาจาก  Just Throw Hardware At It   หมายความว่าเมื่อมีปัญหาเรื่อง performance ก็แก้ปัญหาด้วยการเพิ่ม hardware เข้าไปในระบบ ซึ่งสิ้นเปลื...</description>
      <pubDate>Thu, 19 Jul 2007 03:39:42 GMT</pubDate>
      <guid>http://gotoknow.org/blog/memecoder/112718</guid>
      <author>ธวัชชัย ปิยะวัฒน์</author>
      <category>jthai</category>
      <category>ruby on rails</category>
      <category>strategy</category>
      <category>hardware</category>
      <category>optimization</category>
    </item>
  </channel>
</rss>
'''

    def gotoknow_sample = '''
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" />

  <script src="/javascripts/prototype.js?1212748577" type="text/javascript"></script>
<script src="/javascripts/effects.js?1212748577" type="text/javascript"></script>
<script src="/javascripts/dragdrop.js?1212748577" type="text/javascript"></script>
<script src="/javascripts/controls.js?1212748577" type="text/javascript"></script>
<script src="/javascripts/application.js?1206429039" type="text/javascript"></script>

  <link href="/stylesheets/common.css?1210479955" media="screen" rel="stylesheet" type="text/css" />
  <link href="/stylesheets/print_default.css?1206429039" media="print" rel="stylesheet" type="text/css" />


  <script src="/javascripts/yui/build/yahoo-dom-event/yahoo-dom-event.js?1206429038" type="text/javascript"></script>

  <script src="/javascripts/yui/build/container/container-min.js?1206429038" type="text/javascript"></script>
  <link href="/stylesheets/../javascripts/yui/build/container/assets/container.css?1206429038" media="screen" rel="stylesheet" type="text/css" />

  <script src="/javascripts/yui/build/menu/menu-min.js?1206429037" type="text/javascript"></script>
  <link href="/stylesheets/../javascripts/yui/build/menu/assets/menu.css?1206429037" media="screen" rel="stylesheet" type="text/css" />




  <link href="/stylesheets/../themes/blue/style.css?1211611374" media="screen" rel="stylesheet" type="text/css" />


  <link href="/stylesheets/custom.css?1206429039" media="screen" rel="stylesheet" type="text/css" />





<title>MemeCoder - ธวัชชัย ปิยะวัฒน์</title>


  <link rel="alternate" type="application/rss+xml" title="MemeCoder" href="http://gotoknow.org/blog/memecoder/rss20.xml" />


</head>
<body>
<a name="top" />

<div id="headbar">
  <div id="headbar-logo">
          <a href="http://gotoknow.org/home"><img alt="Gotoknow_10" border="0" src="http://gotoknow.org/file/soontrees/gotoknow_10.gif" /></a>
      </div>

  <div id="headbar-controller">
          <a href="http://gotoknow.org/register">สมัครสมาชิก</a>
      &nbsp;
      <a href="http://gotoknow.org/login">เข้าระบบ</a>
    
    
    
    &nbsp;
    <a href="#" onclick="SiteFont.smaller(); return false;"><img alt="" border="0" height="16px" src="/images/icons/small_font.gif?1206429037" width="16px}" /></a><a href="#" onclick="SiteFont.larger(); return false;"><img alt="" border="0" height="16px" src="/images/icons/large_font.gif?1206429037" width="16px}" /></a>    
  </div>
</div>

<div id="loading" style="display: none;">
  <br/>
  <img alt="Indicator_progressbar" src="/images/indicator_progressbar.gif?1206429037" /><br/>
  กำลังประมวลผล...
  <br/><br/>
</div>




<div id="screen-wrapper">
  <div id="page-wrapper">

    
    

    <div id="page">
      <div id="title">
        
          
          
          MemeCoder
        
      </div>

      <div id="subtitle">
        <div id="searchbar"><a href="http://gotoknow.org/search">ค้นหา</a></div>
        ธวัชชัย ปิยะวัฒน์
      </div>

      <div id="ribbon">
        <div id="user-menu" class="yuimenubar yuimenubarnav">
  <div class="bd">
    <ul class="first-of-type">
      
            <li class="yuimenubaritem first-of-type"><a href="#" class="yuimenubaritemlabel">เมนูรวม</a>
        <div class="yuimenu">
          <div class="bd">          
            <ul>
              <li class="yuimenuitem"><a href="http://gotoknow.org/home" class="yuimenuitemlabel">หน้าแรก</a></li>
              <li class="yuimenuitem"><a href="#" class="yuimenubaritemlabel">อนุทิน</a>
                <div class="yuimenu">
                  <div class="bd">
                    <ul>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/journals" class="yuimenuitemlabel">รายการอนุทินล่าสุด</a></li>
                    </ul>
                  </div>
                </div>
              </li>
              <li class="yuimenuitem"><a href="http://gotoknow.org/blog" class="yuimenuitemlabel">บล็อก</a>          
                <div class="yuimenu">
                  <div class="bd">
                    <ul>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/post/recent" class="yuimenuitemlabel">บันทึกล่าสุด</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/post/recently-commented" class="yuimenuitemlabel">บันทึกที่ได้รับความคิดเห็นล่าสุด</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/post/random" class="yuimenuitemlabel">บันทึกสุ่มแสดง</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/blog" class="yuimenuitemlabel">บล็อกล่าสุด</a></li>          
                    </ul>
                  </div>
                </div>
              </li>
              <li class="yuimenuitem"><a href="http://gotoknow.org/file/recent" class="yuimenuitemlabel">ไฟล์อัลบั้ม</a>
                <div class="yuimenu">
                  <div class="bd">
                    <ul>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/file/recent" class="yuimenuitemlabel">ไฟล์ล่าสุด</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/file/recently-commented" class="yuimenuitemlabel">ไฟล์ที่ได้รับความคิดเห็นล่าสุด</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/file/random" class="yuimenuitemlabel">ไฟล์สุ่มแสดง</a></li>
                    </ul>
                  </div>
                </div>
              </li>
              <li class="yuimenuitem"><a href="http://gotoknow.org/ask/recent" class="yuimenuitemlabel">คำถาม</a>
                <div class="yuimenu">
                  <div class="bd">
                    <ul>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/ask/recent" class="yuimenuitemlabel">คำถามล่าสุด</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/ask/recently-answered" class="yuimenuitemlabel">คำถามที่ตอบล่าสุด</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/ask/recently-commented" class="yuimenuitemlabel">คำถามที่ได้รับความคิดเห็นล่าสุด</a></li>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/ask/random" class="yuimenuitemlabel">คำถามสุ่มแสดง</a></li>
                    </ul>
                 </div>
                </div>
              </li>
              <li class="yuimenuitem"><a href="http://gotoknow.org/planet" class="yuimenuitemlabel">แพลนเน็ตล่าสุด</a></li>
              <li class="yuimenuitem"><a href="http://gotoknow.org/bookmark" class="yuimenuitemlabel">เว็บอ้างอิงล่าสุด</a></li>
              <li class="yuimenuitem"><a href="http://gotoknow.org/profile" class="yuimenuitemlabel">สมาชิกล่าสุด</a></li>
              <li class="yuimenuitem"><a href="http://gotoknow.org/comment" class="yuimenuitemlabel">ความคิดเห็นล่าสุด</a></li>
            </ul>
          </div>
        </div>
      </li>
      
            

            
        
       

              <li class="yuimenubaritem"><a href="#" class="yuimenubaritemlabel">สมาชิก</a>
          <div class="yuimenu">
            <div class="bd">
              <ul>
                <li class="yuimenuitem"><a href="http://gotoknow.org/register" class="yuimenuitemlabel">สมัครสมาชิก</a></li>
                <li class="yuimenuitem"><a href="http://gotoknow.org/login" class="yuimenuitemlabel">เข้าระบบ</a></li>
              </ul>
            </div>
          </div> 
        </li>
      
            
      
      <li class="yuimenubaritem">
        <a href="#" class="yuimenubaritemlabel"><img alt="P" border="0" class="profile_picture" src="http://gotoknow.org/profile/thawatchai/picture/10/p.jpg" /> เมนูของ thawatchai</a>
        <div class="yuimenu">
          <div class="bd">
            <ul>

                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/portal/thawatchai" class="yuimenuitemlabel">ศูนย์รวมข้อมูล ธวัชชัย ปิยะวัฒน์</a>

                            <li class="yuimenuitem"><a href="/blog/memecoder?class=yuimenuitemlabel">บล็อก</a>
              <div class="yuimenu">
                <div class="bd">
                  <ul>
                                            <li class="yuimenuitem">
                        <a href="http://gotoknow.org/blog/memecoder" class="yuimenuitemlabel">MemeCoder</a>
                        <div class="yuimenu">
                          <div class="bd">
                            <ul>                              
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/memecoder" class="yuimenuitemlabel">แสดง</a></li>
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/memecoder/toc" class="yuimenuitemlabel">สารบัญ</a></li>
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/memecoder/tag" class="yuimenuitemlabel">รายการคำสำคัญที่ใช้</a></li>
                            </ul>
                          </div>
                        </div>
                      </li>
                                                                  <li class="yuimenuitem">
                        <a href="http://gotoknow.org/blog/averageline" class="yuimenuitemlabel">พอไหว พอไหว</a>
                        <div class="yuimenu">
                          <div class="bd">
                            <ul>                              
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/averageline" class="yuimenuitemlabel">แสดง</a></li>
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/averageline/toc" class="yuimenuitemlabel">สารบัญ</a></li>
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/averageline/tag" class="yuimenuitemlabel">รายการคำสำคัญที่ใช้</a></li>
                            </ul>
                          </div>
                        </div>
                      </li>
                                                                  <li class="yuimenuitem">
                        <a href="http://gotoknow.org/blog/systemnews" class="yuimenuitemlabel">System News</a>
                        <div class="yuimenu">
                          <div class="bd">
                            <ul>                              
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/systemnews" class="yuimenuitemlabel">แสดง</a></li>
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/systemnews/toc" class="yuimenuitemlabel">สารบัญ</a></li>
                              <li class="yuimenuitem">
                                <a href="http://gotoknow.org/blog/systemnews/tag" class="yuimenuitemlabel">รายการคำสำคัญที่ใช้</a></li>
                            </ul>
                          </div>
                        </div>
                      </li>
                                                                                </ul>
                </div>
              </div>
              </li>  

                            <li class="yuimenuitem"><a href="#" class="yuimenuitemlabel">แพลนเน็ต (รวมบล็อก)</a>
              <div class="yuimenu">
                <div class="bd">
                  <ul>
                      <li class="yuimenuitem">
                        <a href="http://gotoknow.org/planet/readingmatter" class="yuimenuitemlabel">Reading Matter</a></li>
                                    </ul>
                </div>
              </div>
              </li>

                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/journals/thawatchai" class="yuimenuitemlabel">อนุทิน</a></li>

                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/file/thawatchai" class="yuimenuitemlabel">ไฟล์อัลบั้ม</a></li>

                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/ask/thawatchai" class="yuimenuitemlabel">ถามตอบ</a></li>

                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/bookmark/thawatchai" class="yuimenuitemlabel">เว็บอ้างอิง</a></li>

                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/profile/thawatchai" class="yuimenuitemlabel">ประวัติ</a></li>

                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/email/thawatchai" class="yuimenuitemlabel">อีเมลติดต่อ</a></li>
                
                            <li class="yuimenuitem">
                <a href="http://gotoknow.org/comment/thawatchai" class="yuimenuitemlabel">ความคิดเห็นล่าสุด</a></li>

                            
              <li class="yuimenuitem">
                <a href="http://monitor.gotoknow.org/allmsgs.php?thawatchai" class="yuimenuitemlabel" target="_blank">ดูความเคลื่อนไหวย้อนหลัง</a></li>
              
            
            </ul>
          </div>
        </div>
      </li>
       
      
    </ul>
  </div>
</div>


<!-- JavaScripts -->
<script type="text/javascript">
  YAHOO.util.Event.onContentReady("user-menu", function() {
    var oMenu = new YAHOO.widget.MenuBar("user-menu", {lazyload: true, autosubmenudisplay: true});
    oMenu.render();
    oMenu.show();
  });
</script>

      </div>

    

      
        <div id="profile">
          

<table>
  <tr>
          <td width="10%">
        <a href="http://gotoknow.org/profile/thawatchai"><img alt="P" border="0" class="profile_picture" src="http://gotoknow.org/profile/thawatchai/picture/50/p.jpg" /></a>
      </td>
      <td width="25%" class="username" style="padding-right: 8px;">
        <b>ธวัชชัย ปิยะวัฒน์</b>
        <br />
                  มหาวิทยาลัยสงขลานครินทร์<br />
                <a href="http://gotoknow.org/email/thawatchai">อีเมลติดต่อ</a>
        <br />
        <div>
          <span class="more"><a href="http://gotoknow.org/profile/thawatchai">มีต่อ &raquo;</a></span>
        </div>
      </td>
      <td width="65%">&nbsp;</td>
      </tr>
</table>
<div class="clear"></div>

        </div>
      

      <div class="breadcrumbs">
         <a href="http://gotoknow.org/home">home</a>&nbsp;/&nbsp;<a href="/blog">blog</a>&nbsp;/&nbsp;<a href="/blog/memecoder">memecoder</a>
      </div>

      


<div id="content2" class="box">
  
  <div id="tab-view">
    <ul id="tab-nav">
      <li class="selected"><a href="http://gotoknow.org/blog/memecoder/recent-posts">บันทึกล่าสุด</a></li>
      <li class=""><a href="http://gotoknow.org/blog/memecoder/recently-commented-posts">บันทึกที่ได้รับความคิดเห็นล่าสุด</a></li>
      <li class=""><a href="http://gotoknow.org/blog/memecoder/info">ข้อมูลบล็อก</a></li>
    </ul>
  </div>
  <div id="tab-content">
     
      <div id="posts">
                              
<div class="stat">
  อ่าน: 262
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/171586">ชีวิตที่สับสนของผู้บริหารระบบเครือข่าย</a>
      <sup></sup>
    </div>
        <div class="content">
       ผู้บริหารระบบเครือข่าย (System Administrator) เป็นอาชีพที่มีชีวิตผิดผู้คนมากเลยครับ เพราะเราต้องจัดการปรับปรุงดูแลเครื่องแม่ข่าย แล้วการดูแลเครื่องแม่ข่ายนั้นควรทำเวลาที่มีผู้ใช้น้อยที่สุด และเวลาที่มีผู้ใช้น้อยที่สุดคือเวลากลางคืนดึกๆ มากๆ 
 แต่ถ้าอยากเป็นผู้บริหารระบบเครือข่ายที่มีสุขภาพดีก็ไ... <a href="http://gotoknow.org/blog/memecoder/171586">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/system%20administrator">system administrator</a>&nbsp; <a href="http://gotoknow.org/post/tag/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%88%E0%B8%B1%E0%B8%94%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%A7%E0%B8%A5%E0%B8%B2">การจัดการเวลา</a>&nbsp; <a href="http://gotoknow.org/post/tag/%E0%B8%9C%E0%B8%B9%E0%B9%89%E0%B8%9A%E0%B8%A3%E0%B8%B4%E0%B8%AB%E0%B8%B2%E0%B8%A3%E0%B8%A3%E0%B8%B0%E0%B8%9A%E0%B8%9A%E0%B9%80%E0%B8%84%E0%B8%A3%E0%B8%B7%E0%B8%AD%E0%B8%82%E0%B9%88%E0%B8%B2%E0%B8%A2">ผู้บริหารระบบเครือข่าย</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/171586">ความคิดเห็น</a>
    (11)
    <br/>
    สร้าง: พ. 19 มี.ค. 2551 @ 10:48
  &nbsp;
  แก้ไข: พ. 19 มี.ค. 2551 @ 10:48
  &nbsp;
  ขนาด: 2560 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 247
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/166093">เขียวเสียที หลังจากมีอคติมาบังตา</a>
      <sup></sup>
    </div>
        <div class="content">
       สัปดาห์ที่แล้ว เราได้มีโอกาสขยับ KnowledgeVolution มาอยู่บน Ruby on Rails 2.0.2 แล้วได้ทดลอง deploy กับ Leaners.in.th เป็นไซต์แรก (เพราะอยู่คนละเครื่องแม่ข่ายกับไซต์อื่นๆ) ปรากฎว่า bugs กระจาย ไล่หาอย่างไรก็ไม่เจอเสียที โดยส่วนใหญ่ error message จะเกี่ยวข้องกับกระบวนการ caching ครับ    ครั้งนี้เ... <a href="http://gotoknow.org/blog/memecoder/166093">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/mysql">mysql</a>&nbsp; <a href="http://gotoknow.org/post/tag/plugin">plugin</a>&nbsp; <a href="http://gotoknow.org/post/tag/ruby%20on%20rails">ruby on rails</a>&nbsp; <a href="http://gotoknow.org/post/tag/subquery">subquery</a>&nbsp; <a href="http://gotoknow.org/post/tag/willpaginate">willpaginate</a>&nbsp; <a href="http://gotoknow.org/post/tag/%E0%B8%9B%E0%B8%A3%E0%B8%B1%E0%B8%8A%E0%B8%8D%E0%B8%B2%E0%B8%8A%E0%B8%B5%E0%B8%A7%E0%B8%B4%E0%B8%95">ปรัชญาชีวิต</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/166093">ความคิดเห็น</a>
    (2)
    <br/>
    สร้าง: อ. 19 ก.พ. 2551 @ 08:55
  &nbsp;
  แก้ไข: อ. 19 ก.พ. 2551 @ 08:55
  &nbsp;
  ขนาด: 4609 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 230
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/164347">Xrandr กับ MacBook</a>
      <sup></sup>
    </div>
        <div class="content">
       ตอนนี้ผมใช้ MacBook ที่ติดตั้ง Ubuntu มาได้หนึ่งวันเต็มๆ MacBook นี่ทำงานได้ดีมากกับ Ubuntu เพราะ hardware ที่ Apple ทำมานั้นดี ภาพที่ปรากฎบนหน้าจอเลยดูสดสวยงาม ทำให้รู้ว่า GNOME นี่ไม่ได้แพ้ Mac OS X เลย ถ้าดูกันในเครื่องที่ศักยภาพในการแสดงผลพอๆ กัน    แต่ปัญหาที่ผมใช้เวลาหาทางแก้อยู่พักใหญ่คือ... <a href="http://gotoknow.org/blog/memecoder/164347">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/ubuntu">ubuntu</a>&nbsp; <a href="http://gotoknow.org/post/tag/macbook">macbook</a>&nbsp; <a href="http://gotoknow.org/post/tag/vga">vga</a>&nbsp; <a href="http://gotoknow.org/post/tag/xorg">xorg</a>&nbsp; <a href="http://gotoknow.org/post/tag/xrandr">xrandr</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/164347">ความคิดเห็น</a>
    (0)
    <br/>
    สร้าง: ส. 09 ก.พ. 2551 @ 21:43
  &nbsp;
  แก้ไข: ส. 09 ก.พ. 2551 @ 21:44
  &nbsp;
  ขนาด: 2142 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 333
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/164159">ลาที Mac OS X</a>
      <sup></sup>
    </div>
        <div class="content">
       ผมเปลี่ยนมาใช้ Ubuntu เป็นหลักในการทำงานได้เกือบสัปดาห์แล้วครับ ปล่อยให้ MacBook เป็นพระรอง เป็นการประชดพี่ Steve ที่ไม่ได้เห็นผู้คนในโลกที่สาม ออก MacBook Air มาให้เฉพาะผู้มีเงินในประเทศโลกที่หนึ่งใช้ ผิดหวังผมอย่างยิ่ง    ในงาน MacWorld ที่ผ่านมา ผมคาดหวังว่า Apple ในฐานะผู้นำเครื่องคอมพิวเตอร... <a href="http://gotoknow.org/blog/memecoder/164159">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/apple">apple</a>&nbsp; <a href="http://gotoknow.org/post/tag/bill%20gates">bill gates</a>&nbsp; <a href="http://gotoknow.org/post/tag/macbook%20air">macbook air</a>&nbsp; <a href="http://gotoknow.org/post/tag/microsoft">microsoft</a>&nbsp; <a href="http://gotoknow.org/post/tag/steve%20jobs">steve jobs</a>&nbsp; <a href="http://gotoknow.org/post/tag/ubuntu">ubuntu</a>&nbsp; <a href="http://gotoknow.org/post/tag/creative%20capitalism">creative capitalism</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/164159">ความคิดเห็น</a>
    (6)
    <br/>
    สร้าง: ศ. 08 ก.พ. 2551 @ 15:19
  &nbsp;
  แก้ไข: ศ. 08 ก.พ. 2551 @ 16:46
  &nbsp;
  ขนาด: 5571 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 510
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/138414">Ruby on Rails หรือ Django</a>
      <sup></sup>
    </div>
        <div class="content">
       วันนี้เราพึ่งได้เปิดตัว  LightLex  ซึ่งเป็น dictionary ภาษาไทยและภาษาอังกฤษ โดยนำคลังศัพท์มาจาก  Lexitron  ครับ    สาเหตุที่เราทำ LightLex เนื่องจากเราได้คุยกับ NECTEC ไว้ตั้งแต่เดือนพฤศจิกายนปีที่แล้ว ว่าเราจะนำความถนัดด้าน Human-Computer Interaction มาเสริมในงานวิจัยต่างๆ ของ NECTEC เพื่อให้มี... <a href="http://gotoknow.org/blog/memecoder/138414">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/ruby">ruby</a>&nbsp; <a href="http://gotoknow.org/post/tag/ruby%20on%20rails">ruby on rails</a>&nbsp; <a href="http://gotoknow.org/post/tag/rails">rails</a>&nbsp; <a href="http://gotoknow.org/post/tag/python">python</a>&nbsp; <a href="http://gotoknow.org/post/tag/django">django</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/138414">ความคิดเห็น</a>
    (15)
    <br/>
    สร้าง: อา. 14 ต.ค. 2550 @ 14:53
  &nbsp;
  แก้ไข: อา. 14 ต.ค. 2550 @ 20:12
  &nbsp;
  ขนาด: 5730 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 382
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/136222">Maryland Public Television (MPT) สถานีโทรทัศน์ที่ Owned and Operated by Viewers Like You</a>
      <sup></sup>
    </div>
        <div class="content">
       ในบันทึกนี้ผมอยากจะขอเล่าในสิ่งที่ผมประทับใจในช่วงที่กำลังศึกษาอยู่ที่อเมริกาหนึ่งเรื่องครับ    ชีวิตผมในช่วงที่อยู่อเมริกามีทั้งเรื่องที่น่าประทับใจและเรื่องที่ไม่อยากจำ ปะปนกันไป เรื่องทั้งสองแบบที่จริงแล้วควรนำมาเล่า เพราะเป็นทั้งบทเรียนและเป็นอุทาหรณ์สอนใจครับ    แต่เรื่องที่ผมจะเล่าในบันทึก... <a href="http://gotoknow.org/blog/memecoder/136222">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/8">สังคม ครอบครัว ชุมชน เศรษฐกิจ</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/%E0%B8%AA%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%A1%E0%B8%A7%E0%B8%A5%E0%B8%8A%E0%B8%99">สื่อมวลชน</a>&nbsp; <a href="http://gotoknow.org/post/tag/mpt">mpt</a>&nbsp; <a href="http://gotoknow.org/post/tag/pbs">pbs</a>&nbsp; <a href="http://gotoknow.org/post/tag/%E0%B8%AD%E0%B9%80%E0%B8%A1%E0%B8%A3%E0%B8%B4%E0%B8%81%E0%B8%B2">อเมริกา</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/136222">ความคิดเห็น</a>
    (8)
    <br/>
    สร้าง: จ. 08 ต.ค. 2550 @ 14:39
  &nbsp;
  แก้ไข: จ. 08 ต.ค. 2550 @ 14:45
  &nbsp;
  ขนาด: 9735 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 370
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/134777">FreeBSD ประกาศให้ผู้ใช้ติดตั้ง patch เพื่อแก้ปัญหาความปลอดภัยของ OpenSSL</a>
      <sup></sup>
    </div>
        <div class="content">
       วันนี้ FreeBSD Security Advisories มีประกาศให้ผู้ใช้ติดตั้ง patch เพื่อแก้ปัญหาความปลอดภัยของ OpenSSL ดัง  รายละเอียดนี้  ครับ    ผมชอบ FreeBSD ก็ตรงเรื่องระบบการจัดการในการพัฒนาและการดูแลของชุมชนในการใช้งานเช่นนี้ละครับ  ผู้สนใจสามารถติดตามเรื่องความปลอดภัยของ FreeBSD &nbsp;ได้ที่&nbsp; FreeBSD... <a href="http://gotoknow.org/blog/memecoder/134777">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/freebsd">freebsd</a>&nbsp; <a href="http://gotoknow.org/post/tag/security">security</a>&nbsp; <a href="http://gotoknow.org/post/tag/openssl">openssl</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/134777">ความคิดเห็น</a>
    (8)
    <br/>
    สร้าง: พฤ. 04 ต.ค. 2550 @ 11:19
  &nbsp;
  แก้ไข: พฤ. 04 ต.ค. 2550 @ 11:26
  &nbsp;
  ขนาด: 2404 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 444
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/127971">ทับทิม (ruby) ไม่งาม ไม่เชื่อแล้วพระเจ้า (god) ให้หมาบุลด๊อก (monit) เลี้ยงหมาบ้าน (mongrel) ดีกว่า</a>
      <sup></sup>
    </div>
        <div class="content">
       ในสัปดาห์ที่แล้วผมฝากฝูงหมาบ้าน ( mongrel ) ให้พระเจ้า ( god ) ดูแล ดังที่เขียนไว้ใน  บันทึก  นี้ครับ    ปรากฎว่าพระเจ้ามืออ่อนมาก!! อาจจะเป็นด้วยวัยวุฒิที่น้อย (version 0.4.3) หรือการที่พระเจ้าติดอยู่ในทับทิม ( ruby ) ก็ไม่แน่ใจ เมื่อหมาบ้าน (mongrel) ผมตายเนื่องจากสาเหตุต่างๆ นานา พระเจ้าไม่สา... <a href="http://gotoknow.org/blog/memecoder/127971">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/ruby">ruby</a>&nbsp; <a href="http://gotoknow.org/post/tag/mongrel">mongrel</a>&nbsp; <a href="http://gotoknow.org/post/tag/god">god</a>&nbsp; <a href="http://gotoknow.org/post/tag/monit">monit</a>&nbsp; <a href="http://gotoknow.org/post/tag/ruby%20on%20rails">ruby on rails</a>&nbsp; <a href="http://gotoknow.org/post/tag/system%20monitoring">system monitoring</a>&nbsp; <a href="http://gotoknow.org/post/tag/server">server</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/127971">ความคิดเห็น</a>
    (3)
    <br/>
    สร้าง: ศ. 14 ก.ย. 2550 @ 09:56
  &nbsp;
  แก้ไข: อา. 23 ก.ย. 2550 @ 18:41
  &nbsp;
  ขนาด: 2934 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 512
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/127477">คิดจะเลี้ยง &quot;นักเลง&quot; ต้อง &quot;ใจนักเลง&quot;</a>
      <sup></sup>
    </div>
        <div class="content">
       เท่าที่ผมสังเกต ผมคิดว่าวิธีการบริหารจัดการแบบ &quot;ไทยๆ&quot; แบ่งได้เป็นสองแบบคือ แบบ &quot;ขุนนาง&quot; กับแบบ &quot;นักเลง&quot;    สองแบบนี้มีมาตั้งแต่โบราณครับ เป็นส่วนหนึ่งของวัฒนธรรมที่ฝังรากในสังคมไทยอย่างยาวนานและยังถูกใช้อยู่ในปัจจุบันอย่างเหนียวแน่นไม่เปลี่ยนแปลง    การบริหารจัดการแ... <a href="http://gotoknow.org/blog/memecoder/127477">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/4">การบริหารจัดการ การจัดการความรู้</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/%E0%B8%99%E0%B8%B1%E0%B8%81%E0%B9%80%E0%B8%A5%E0%B8%87">นักเลง</a>&nbsp; <a href="http://gotoknow.org/post/tag/%E0%B8%82%E0%B8%B8%E0%B8%99%E0%B8%99%E0%B8%B2%E0%B8%87">ขุนนาง</a>&nbsp; <a href="http://gotoknow.org/post/tag/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%88%E0%B8%B1%E0%B8%94%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%A3%E0%B8%B9%E0%B9%89">การจัดการความรู้</a>&nbsp; <a href="http://gotoknow.org/post/tag/open%20source">open source</a>&nbsp; <a href="http://gotoknow.org/post/tag/open%20contents">open contents</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/127477">ความคิดเห็น</a>
    (12)
    <br/>
    สร้าง: พ. 12 ก.ย. 2550 @ 22:22
  &nbsp;
  แก้ไข: อา. 23 ก.ย. 2550 @ 21:58
  &nbsp;
  ขนาด: 14966 ไบต์
</div>

  </div>

                      
<div class="stat">
  อ่าน: 434
</div>


  <div class="item">
    <div class="title">
      <a href="http://gotoknow.org/blog/memecoder/125103">พระเจ้าช่วย!</a>
      <sup></sup>
    </div>
        <div class="content">
       ช่วงหลายวันนี้ผมใช้ &quot;สิ่งศักดิ์สิทธิ์&quot; ในการดูแลเครื่องแม่ข่ายครับ ปรากฎว่าได้ผลดีมาก แต่เรื่องนี้เล่ายาวครับ    ที่จริงแล้ว Ruby on Rails นี่เป็น framework ที่ไม่ได้สุดยอดมากมายอะไรนักครับ จากประสบการณ์ในการใช้งานมาทั้งหมดในหนึ่งปีนี้ ผมว่า framework ทำเองก่อนหน้านี้ที่ทำด้วย Python เ... <a href="http://gotoknow.org/blog/memecoder/125103">มีต่อ &raquo;</a>
    </div>
    
<div class="clear"></div>
<div class="tags">
  <b>หมวดหมู่: </b>
      <a href="http://gotoknow.org/post/section/7">วิทยาศาสตร์ เทคโนโลยี</a><br />
    <b>คำสำคัญ: </b>
  <a href="http://gotoknow.org/post/tag/god">god</a>&nbsp; <a href="http://gotoknow.org/post/tag/ruby">ruby</a>&nbsp; <a href="http://gotoknow.org/post/tag/rails">rails</a>&nbsp; <a href="http://gotoknow.org/post/tag/mongrel">mongrel</a>&nbsp; <a href="http://gotoknow.org/post/tag/process%20monitoring">process monitoring</a>
</div>

<div class="info">
      โดย <a href="http://gotoknow.org/profile/thawatchai">ธวัชชัย ปิยะวัฒน์</a>
    &nbsp;
    <a href="http://gotoknow.org/blog/memecoder/125103">ความคิดเห็น</a>
    (6)
    <br/>
    สร้าง: อ. 04 ก.ย. 2550 @ 23:49
  &nbsp;
  แก้ไข: พฤ. 15 พ.ย. 2550 @ 14:07
  &nbsp;
  ขนาด: 4840 ไบต์
</div>

  </div>

                    
<div class="pagination"><span class="disabled prev_page">&laquo; ก่อนหน้า</span> <span class="current">1</span> <a href="/blog/memecoder?page=2" rel="next">2</a> <a href="/blog/memecoder?page=3">3</a> <a href="/blog/memecoder?page=4">4</a> <a href="/blog/memecoder?page=5">5</a> <a href="/blog/memecoder?page=6">6</a> <a href="/blog/memecoder?page=7">7</a> <a href="/blog/memecoder?page=8">8</a> <a href="/blog/memecoder?page=2" class="next_page" rel="next">ถัดไป &raquo;</a></div> 

              </div>
     
  </div>

</div>






              <div class="badge-code">
          <img align="top" alt="Rss20" border="0" height="15" src="/images/rss20.png?1206429037" width="80" />
          <a href="http://gotoknow.org/blog/memecoder/rss20.xml">MemeCoder</a>
        </div>
      
      <div class="badge-code" id="js_badge">
        JavaScript Badge:
        <input type="text" id="js_code" value="&lt;script src=&quot;http://gotoknow.org/blog/memecoder?format=js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;" class="common" />
        &nbsp;
        <a href="#" onclick="$('js_code').value = '&lt;script src=&quot;http://gotoknow.org/blog/memecoder?format=js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;'; Effect.FlashAppear('js_badge'); return false;">with</a>/<a href="#" onclick="$('js_code').value = '&lt;script src=&quot;http://gotoknow.org/blog/memecoder?format=js&amp;no_style=true&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;'; Effect.FlashAppear('js_badge'); return false;">without</a> stylesheet
      </div>

      <div class="breadcrumbs"> <a href="http://gotoknow.org/home">home</a>&nbsp;/&nbsp;<a href="/blog">blog</a>&nbsp;/&nbsp;<a href="/blog/memecoder">memecoder</a></div>

      <div id="footer">
                  <a href="http://gotoknow.org/email/thawatchai">ติดต่อ ธวัชชัย ปิยะวัฒน์</a>
          &nbsp;
          หรือ
          &nbsp;
                          <a href="http://gotoknow.org/email/webmaster">ติดต่อผู้บริหารเว็บไซต์</a>
                &nbsp;
        <a href="http://gotoknow.org/secret">+</a>
        &nbsp;
        Powered by <a href="http://knowledgevolution.org">KnowledgeVolution</a> - a product of <a href="http://www.trf.or.th">TRF</a> &amp; <a href="http://www.kmi.or.th">KMI</a>
        <br/>
                  <br/>
<div style="text-align: center;"><center>
<a href="http://gotoknow.org/manual">คู่มือการใช้ระบบ (6 มิ.ย. 51)</a> | <a href="/blog/tutorial4u/76089">คำถามคำตอบ (FAQs)</a> | <a href="/blog/tutorial4u/75413">คำศัพท์ที่เกี่ยวข้อง</a> | <a href="/blog/tutorial/44452">เงื่อนไขการให้บริการ</a> | <a href="http://gotoknow.org/blog/tutorial/44453">นโยบายสิทธิส่วนบุคคล</a> | <a href="http://gotoknow.org/blog/tutorial/3391">หลักการเขียนบล็อก</a> <br> <a href="http://gotoknow.org/blog/my-usablelabs/119433">เพลง GotoKnow</a> | <a href="http://gotoknow.org/blog/islandpk/173312">เพลง กอดคนแซ่เฮ</a> | <a href="http://gotoknow.org/blog/pr4u/189176">ยอดเงินบริจาคสมทบกองทุน GotoKnow.org & Learners.in.th</a>
<br><br>
เว็บไซต์ในเครือข่าย: <a href="http://Learners.in.th">Learners.in.th</a> | <a href="http://Researchers.in.th">Researchers.in.th</a> | <a href="http://monitor.gotoknow.org/">GotoKnow Monitor</a> | <a href="http://lightlex.com/">LightLex</a>
<br/><br/>
<div style="background: #fff; width: 450px; text-align: center;">
<a href="http://www.thaihealth.or.th"><img src="/images/sponsors/thf.gif" alt="Thai Health Promotion Foundation" border="0" /></a>
&nbsp;
<a href="http://www.kmi.or.th/"><img src="/images/sponsors/kmi.gif" alt="The Knowledge Management Institute" border="0" /></a>
&nbsp;
<a href="http://www.trf.or.th"><img src="/images/sponsors/trf.gif" alt="Thailand Research Fund" border="0" /></a>
&nbsp;
<a href="http://www.psu.ac.th"><img src="/images/sponsors/psu.gif" alt="Prince of Songkla University" border="0" /></a>
&nbsp;
<a href="http://www.thairuralnet.org/"><img src="/images/sponsors/trn.gif" alt="Thai Rural Net" border="0" /></a>
&nbsp;
<a href="http://www.inet.co.th/"><img src="/images/sponsors/inet.gif" alt="Internet Thailand" border="0" /></a>
&nbsp;

<!--BEGIN WEB STAT CODE-->
<SCRIPT LANGUAGE="javascript1.1"> __th_page = ""; </SCRIPT>
<SCRIPT LANGUAGE="javascript1.1" src="http://hits.truehits.in.th/data/r0028004.js"></SCRIPT>
<!--END WEB STAT CODE-->

<!--
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1374511-3";
urchinTracker();
</script>
-->

</div>
</center></div>
              </div>

    </div>
  </div>
</div>


</body>
</html>
'''

}
